package edu.cibertec.alquiler.dao.persistence;

import java.util.ArrayList;
import java.util.List;

import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Query;

import edu.cibertec.alquiler.dao.UsuarioDAO;
import edu.cibertec.alquiler.entity.Usuario;

public class UsuarioJPADAO implements UsuarioDAO {
	private EntityManagerFactory emf;
	private EntityManager em;
	
	public void setEntityManagerFactory(EntityManagerFactory emf){
		this.emf=emf;
	}

	@Override
	public void insertarNuevoUsuario(Usuario bean) throws Exception {
		em=emf.createEntityManager();
		try {
			em.getTransaction().begin();
			em.persist(bean);
			em.flush();
			em.getTransaction().commit();
		} catch (Exception e) {
			System.out.println(e.getMessage());
		}finally{
			em.clear();
			em.close();
		}
	}

	@SuppressWarnings("unchecked")
	@Override
	public List<Usuario> listarUsuarios() throws Exception {
		em=emf.createEntityManager();
		List<Usuario> listaUsuarios=new ArrayList<Usuario>();
		try {
			Query q = em.createQuery("Select u from Usuario u");
			listaUsuarios=q.getResultList();
		} catch (Exception e) {
			System.out.println(e.getMessage());
		}finally{
			em.clear();
			em.close();
		}
		return listaUsuarios;
	}
	
}
